###############################################
#
#       KRTS 网络服务器/客户端
#       时间： 2024-8-10
#       版本： 0.1
#       代码规范： Google 开源项目风格
#       版权所有： 山东易码智能科技股份有限公司
#
###############################################


# CMake 最低支持版本
cmake_minimum_required(VERSION 3.27)
# 项目名称 KitharaExhibit 版本：0.1 编写语言：C++
project(KitharaNetWork VERSION 0.1.0 LANGUAGES CXX)
# C++标准
set(CMAKE_CXX_STANDARD 20)

# 定义系统类型
if (WIN32)
    set(OS_TYPE "Windows")
else ()
    set(OS_TYPE "Linux")
endif ()

# 定义构建类型
if (CMAKE_BUILD_TYPE MATCHES "Debug")
    set(BUILD_TYPE "Debug")
else ()
    set(BUILD_TYPE "Release")
    # Release 设置代码运行优化
    set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -O2")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
endif ()

# 添加定义
add_definitions(
        -DWIN32_LEAN_AND_MEAN
)

# Kithara 使用DEMO版本
set(USE_DEMO FALSE)
if (USE_DEMO)
    set(KITHARA_INCLUDE "C:\\Program Files\\Kithara\\RealTime Suite Demo\\dev")
    set(KITHARA_LIB KrtsDemo_x64.lib)
    add_definitions(-DUSE_DEMO)
else ()
    set(KITHARA_INCLUDE "C:\\Program Files\\Kithara\\LinkControl RealTime Driver\\dev")
    set(KITHARA_LIB LinkControl_x64.lib)
endif ()

# 设置库输出路径
set(BUILD_BIN_DIR "${CMAKE_SOURCE_DIR}/Bin/${OS_TYPE}${BUILD_TYPE}")
set(BUILD_LIB_DIR "${CMAKE_SOURCE_DIR}/Lib/${OS_TYPE}${BUILD_TYPE}")

# 配置生成的执行文件、动态库、静态库保存位置
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${BUILD_LIB_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${BUILD_LIB_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BUILD_BIN_DIR})

# 设置编码格式为utf-8
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")

# 添加项目自身生成的库路径
include_directories(${CMAKE_SOURCE_DIR})
link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY})

# Kithara 库路径
include_directories(${KITHARA_INCLUDE})
link_directories(${KITHARA_INCLUDE})

# 添加子项目
add_subdirectory(UDP)

